#ifndef IMU_DATA_H
#define IMU_DATA_H

#include <stdio.h>

// 定义 IMU 数据结构
typedef struct {
    double timestamp;        // 时间戳，单位：秒
    double accel_x;          // 加速度计 X 轴，单位：m/s²
    double accel_y;          // 加速度计 Y 轴，单位：m/s²
    double accel_z;          // 加速度计 Z 轴，单位：m/s²
    double gyro_x;           // 陀螺仪 X 轴，单位：rad/s
    double gyro_y;           // 陀螺仪 Y 轴，单位：rad/s
    double gyro_z;           // 陀螺仪 Z 轴，单位：rad/s
} ImuData;

// 函数声明

// 生成当前时间戳（以秒为单位）
double get_current_timestamp();

// 读取 IMU 数据
ImuData read_imu_data();

// 将 IMU 数据写入 CSV 文件
int write_imu_data_to_csv(const char *filename, ImuData *data, int num_samples);

// 从 CSV 文件读取 IMU 数据
int read_imu_data_from_csv(const char *filename, ImuData **data, int *num_samples);

// 释放 IMU 数据内存
void free_imu_data(ImuData *data);

#endif // IMU_DATA_H